package org.ytor.common.util.json.status;

import org.ytor.common.util.json.AbsJsonState;
import org.ytor.common.util.json.JsonFsm;

/**
 * created by yangtong on 2025/4/14 22:41:56
 * <br/>
 * 表示正在读取json键值对的key
 */
public class InKeyState extends AbsJsonState {
    @Override
    public void handleNonWhitespace(JsonFsm fsm, char c) {
        //正在读取key，如果遇到了'"'，表示key闭合了，读取完毕
        if (c == '"') {
            //key读取完毕，就获取读到的key，然后清空缓存
            fsm.setKey();
            //读取完了key，状态切换到EXPECT_COLON，表示希望下一个字符是':'
            fsm.changeState(EXPECT_COLON);
        }
        //每次读取到的key字符，都压入缓存
        else {
            fsm.writeBuffer();
        }
    }
}
